package com.wicket.okrapp.integration.dto;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc AnalysisRightSitesComReqDto
 * @使用场景
 */
@Data
public class AnalysisRightSitesComReqDto
  extends BaseDto
  implements Serializable {

  /**
   * 主树被评对象内容表主键ID
   */
  @NotNull(message = "主树被评对象内容表主键ID不能为空")
  @ApiModelProperty("主树被评对象内容表主键ID")
  private String evaObjEntityId;

  /**
   * 主树被评对象类型编码 EVA_PORTRAIT:评价画像 EVA_OBJECT:评价对象 FLEVEL_OBJ_TASK_DUTY_DEPT:一级部门目标任务责任部门 OKR_SUBJECT_DEPT:OKR责任主体部门 OKR_SUBJECT_PERSONAL:OKR责任主体个人
   */
  @NotNull(message = "主树被评对象类型编码不能为空")
  @ApiModelProperty("主树被评对象类型编码")
  private String evaObjTypeCode;

  /**
   * 归属内容表主键ID
   */
  @NotNull(message = "归属内容表主键ID不能为空")
  @ApiModelProperty("归属内容表主键ID")
  private String entityId;

  /**
   * 更新周期开始时间
   */
  @NotNull(message = "更新周期开始时间不能为空")
  @ApiModelProperty("更新周期开始时间")
  private Date updateCycleStartTime;

  /**
   * 更新周期结束时间
   */
  @NotNull(message = "更新周期结束时间不能为空")
  @ApiModelProperty("更新周期结束时间")
  private Date updateCycleEndTime;

  /**
   * 更新周期类型标识
   */
  @NotNull(message = "更新周期类型标识不能为空")
  @ApiModelProperty("更新周期类型标识")
  private String updateCycleTypeCode;

  /**
   * 计算周期五模型 LAST_CYCLE:末级周期 MID_OF_PROCESS_CYCLE:中间周期 SUB_CYCLE:子周期 MID_CYCLE:中期 PARENT_CYCLE:父周期
   */
  @NotNull(message = "计算周期五模型不能为空")
  @ApiModelProperty("计算周期五模型")
  private String standardDataCalcCycleModel;

  /**
   * 与末级周期同体类型分析结果 SUB_CYCLE_SAME_AS_LAST_CYCLE_TYPE:子周期与末级周期同体 MID_OF_PROCESS_SAME_AS_LAST_CYCLE_TYPE:过程中间期与末级周期同体 NORMAL:正常
   */
  @ApiModelProperty("与末级周期同体类型分析结果")
  private String subCycleIsLastCycle;

  /**
   * 归属周期ID
   */
  @ApiModelProperty("归属周期ID")
  private String cycleId;

  /**
   * 父子中周期数据同体模型 FATHER_MID_SUB_SAME:父子中同体 FATHER_MID_SAME:父中同体 FATHER_SUB_SAME:父子同体 PARENT_CYCLE:独立父周期 METAPHASE:独立中期 SUB_CYCLE:独立子周期 SINGLE_SUB_CYCLE:单周期或不规则周期当作子周期 SUB_MID_SAME:子中同体
   */
  @NotNull(message = "父子中周期数据同体模型不能为空")
  @ApiModelProperty("父子中周期数据同体模型")
  private String fatherMidSubCycleDataModel;

  /**
   * 关联目标内容ID
   */
  @NotNull(message = "关联目标内容ID不能为空")
  @ApiModelProperty("关联目标内容ID")
  private String targetCycleContentId;

  /**
   * 目标ID
   */
  @NotNull(message = "目标ID不能为空")
  @ApiModelProperty("目标ID")
  private String targetId;

  /**
   * 是否开启自定义执行周期 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否开启自定义执行周期")
  private String isOpenCustomExecuteCycle;

  /**
   * 创建于空间ID
   */
  @NotNull(message = "创建于空间ID不能为空")
  @ApiModelProperty("创建于空间ID")
  private String spaceId;

}
